程式語言只是一種輔助你完成你想法的工具,沒有所謂絕對好絕對壞的語言
這篇文章簡單彙整了筆者學習 Python 的一些過程以及資源,對於有興趣學習 Python 的人可以參考,也希望可以對一些對於未來感到徬徨的學生有一些幫助,歡迎理性留言討論。
考證照當作入門,可以提升成就感!
任何的程式語言,都一定需要經過基礎語法的學習,然而也就是在這階段是最多人就放棄的階段,因為基礎語法是最為枯燥乏味的,但是當你學過一門語言後,就可以快速的對應到其他種語言,為了協助度過這段枯燥的時光,這邊建議可以去找看看一些基礎證照,作為驗收成果!
基本上 Python 的語法相對容易,可以隨便找市面上的書籍來看,這邊推薦可以去考取 TQC+ Python 程式語言的證照(非業配),下方附上網址:
為了避免業配嫌疑,這邊再同步推個 Microsoft 的 Python 證照:
警示:不要為了考證照而考,證照只是一個驗收,重點是學習的過程
在學習玩基本程式語法後,可以開始往三條路去訓練自己,分別是:
下面分別針對筆者對於這三條路的訓練方法做個簡單的說明。
不知道怎麼練邏輯,就刷題吧!
程式邏輯是所有寫程式的基本,好的邏輯不只可以讓程式有更好的效能,也可以幫助你思考,而該怎麼去訓練自己的邏輯呢,筆者這邊給的答案就是 刷題吧。
想必對於工程師們下面這張圖應該不陌生:
沒錯,這就是 Leetcode,很多寫 code 相關的工作或多或少都會從這裡面出題,或是衍生出一些其他題目,對於初學者,我們可以先從簡單的題目開始刷起,這邊做個簡單的操作教學:
註冊登入(網址)
選擇 "Algorithms" 並且選擇 Easy (初學者請相信我,選 Easy 就好)
開始寫題目
不要畏懼看答案,重點在看不看得懂!
在寫題目的過程中,你一定會遇到看不懂的題目,不知道從何下手,這個時候請不要畏懼去網路上搜尋別人的解答,Leetcode 是一個已經存在許久的古老網站,網路上有非常多的大神們會分享自己的解法,試著去理解別人的思考邏輯,拿這只比跑一遍,多看、多學、多思考,有一天你就會發現你的任督二脈被打通了!
程式效能上不來,不仿看看資料結構這東西!
寫到後面你會發現,為什麼都是寫程式,但你的程式就是跑得比別人慢,這個時候你就該開始讀讀,什麼叫做資料結構,什麼是演算法,甚至你會發現,你把 Leetcode 的題目難度往上調或是刷到 Easy 後面一點的部分,就會開始出現一 Linklist、Graph、Tree 這些神奇的名詞,這個時候就建議你,可以開始看看資料結構了!
這時候你可以去書店翻翻書,你可以看看任何語言寫的資料結構,但筆者自己是覺得可以看一下用 C、C++ 或是 Python 寫的資料結構相關書籍,會比較清楚,當然這邊是在講 Python 的學習,因此這邊推薦給各位的書是使用 Python 寫的,可以放心閱讀。
書籍網址:資料結構:使用Python(第2版)
想必學 Python 的人,都一定多少有聽過 會 Python 不算會寫程式
這句話。沒錯,由於程式語言的特性不同,學 Python 的人最會被人說嘴的就是成為一個套件玩家,顧名思義就是只會使用套件來完成你要的事情,但寫出來的程式跟屎一樣沒人看得懂。
針對這點,你可以開始看看何謂物件導向設計、設計模式以及 Clean Code 這些東東。
讓你的程式更加彈性
物件導向的好處多多,你可以從最基本的三原則 繼成、封裝、多型 開始,這邊推薦一些學習資源:
稍微看完這些概念後,就可以打開你之前寫的程式,試著去思考,哪些東西是可以進行改寫的,怎樣寫程式會讓你的程式碼更加的彈性。
專案超肥,程式碼找不到,那就看看設計模式,但不要亂套!
在學完基礎的物件導向設計後,你可以開始看看設計模式這個酷東西,隨著你的專案開發砸、目錄、變數還有其他阿哩阿雜的東西會越來越多,這個時候你就該看看什麼叫設計模式。
每種設計模式都有自己的好處、適合的地方,切記不要看到什麼模式就直接套進你的專案裡面,這是最大的禁忌,應該適當的去評估你目前該使用什麼模式!
下面推薦一些最基本的設計模式:
程式人的聖經,Clean Code
再來你可以讀讀看 Clean Code 這本書,這本書是使用 java 寫的,閱讀起來可能會稍微有點難度,但主要是要看一些寫程式的原則、以及一些經驗分享,可以幫你在寫程式的時候更加的流暢,也能讓你的程式更容易被讀懂!
最重要的是要解決問題,實踐你的想法
最後來到最後一點 - 程式應用,這個部分筆者就會推薦你去看看 Python 的套件了,不知道從何下手的話,可以推薦幾條最近比較常見的套件以及應用:
上面列出的都是各個應用常見的套件,可以直接把套件名稱拿去 google 或是丟給 GPT,一定都可以找到很多範例,如果有想要特別學哪個方面的應用的話,也歡迎留言告訴我,我會再找時間整理成文章!
必須要有 Side Project
講 Side Project 好像很高大上,甚至對於一些新朋友可能會感到畏懼,但其實他指的就是,你必須要有能力寫出一些屬於自己的專案,小到網路爬蟲、聊天機器人,大到整個網頁、語言模型、演算法等等,都可以是你的 Side Project。
所以當你不知道該拿這門語言做什麼的時候,不仿留意一下身邊有什麼想要解決的事情,或是先做出一個小東西來,這樣可以更有助於幫助你思考自己需要、想要的方向是什麼!
筆者這邊推薦可以從建立一個聊天機器人開始,不論是 Line、Discord 等等,都已經有相對應的書籍以及教學,可以讓你快速的搭建出你的第一個小專案!
這邊也同步推薦一些書,可以給大家參考:
當你不知道要做什麼,不妨試試這些東西,先照著教學內容做出點東西來,再想想看有哪裡可以改進的吧!
學無止境,活到老學到老
很老套的標題,但這是事實,作為一個寫 code 的人類,不論你在哪種產業,都不應該只會一種東西,平時就要多看、多想!相信一定可以有所收穫!